/**
 * 方法类 --如提供表单校验等方法
 * chentao --2018.1.10
 * @flow
 */
class CheckoutAPI {
    /**
     * 校验手机号码
     * @param s
     * @returns {Array|{index: number, input: string}}
     */
    static isMobil(s) {
        const re=/^(13[0-9]|14[0-9]|15[0-9]|166|17[0-9]|18[0-9]|19[8|9])\d{8}$/;
        return !!re.exec(s);
    }

    /**
     * 校验邮政编码
     * @param s
     * @returns {Array|{index: number, input: string}}
     */
    static isPostalCode(s)
    {
        //const re=/^[a-zA-Z0-9]{3,12}$/;
        const re=/^[a-zA-Z0-9 ]{3,12}$/;
        return !!re.exec(s);
    }
    /**
     * 校验密码：只能输入6-20个字母、数字、下划线
     * @param s
     * @returns {Array|{index: number, input: string}}
     */
    static isPasswd(s)
    {
        const re=/^(\w){6,20}$/;
        return !!re.exec(s);
    }

    /**
     * 邮箱
     * @param s
     * @returns {Array|{index: number, input: string}}
     */
    static isEmail(s){
        const re=/^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
        return !!re.exec(s);
    }

    /**
     * 身份证号(15位、18位数字)
     * @param s
     * @returns {Array|{index: number, input: string}}
     */
    static isIDNum(s){
        const re=/^\d{15}|\d{18}$/;
        re.match(s)
        return re.exec(s);
    }

    /**
     * 检测数字，可以是0.开头
     * @param obj
     * @returns {*}
     */
    static checkNum(obj) {
        obj = obj.replace(/[^\d.]/g, "");
        //必须保证第一位为数字而不是.
        obj = obj.replace(/^\./g, "");
        //保证只有出现一个.而没有多个.
        obj = obj.replace(/\.{2,}/g, ".");
        //保证.只出现一次，而不能出现两次以上
        obj = obj.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
        return obj;
    }

}

export default CheckoutAPI;
